build(windows): add arm64 initial support#3905
Open
rbqvq wants to merge 12 commits intoLizardByte:masterfrom
Open
build(windows): add arm64 initial support#3905rbqvq wants to merge 12 commits intoLizardByte:masterfrom
rbqvq wants to merge 12 commits intoLizardByte:masterfrom
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
0ccee19 to
4039fec
Compare
b158d6d to
283ab4c
Compare
This was referenced May 26, 2025
Contributor
Author
|
Can we use this hardware encode? 🤔 |
Member
|
I think MF encoder is already included with the FFmpeg build, so why not? |
Contributor
Author
Well, I didn't read the source code of sunshine. |
This comment was marked as resolved.
This comment was marked as resolved.
9d0c82c to
b0e2234
Compare
48376c4 to
a3ee774
Compare
This comment was marked as resolved.
This comment was marked as resolved.
ReenigneArcher
requested changes
Feb 4, 2026
Member
wix PR will be merged before this one. Packaging seems to work when combining this PR with my wix PR as tested in #4661 |
This comment was marked as resolved.
This comment was marked as resolved.
3ecf7aa to
297379a
Compare
ReenigneArcher
requested changes
Feb 5, 2026
941f7ef to
b56e527
Compare
MinHook does not support Windows ARM64. So sing minhook-detours for Windows ARM64. Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Steam Audio Driver not available on Windows ARM64 Signed-off-by: Coia Prant <coiaprant@gmail.com>
Use ::std:: fully qualified namespace in template functions to avoid ambiguity with clang namespace resolution. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: Ricky8955555 <rkmiao@duck.com>
Add TOSTRING for ICON. Signed-off-by: Coia Prant <coiaprant@gmail.com>
Add vendor ID detection for Qualcomm Adreno GPUs: - 0x4D4F4351: "QCOM" in ASCII (reversed as little-endian) - 0x5143: Alternate Qualcomm vendor ID When a Qualcomm GPU is detected, only Media Foundation encoders (h264_mf, hevc_mf, av1_mf) are considered compatible, as Qualcomm doesn't support NVENC, AMF, or QSV encoder APIs.
Add Windows Media Foundation hardware encoder support for platforms that don't have NVENC, AMF, or QSV (primarily Qualcomm Snapdragon). Encoders added: - h264_mf: H.264 via Media Foundation - hevc_mf: HEVC via Media Foundation - av1_mf: AV1 via Media Foundation Configuration: - Uses D3D11VA hardware device for GPU texture input - CBR rate control with display_remoting scenario for streaming - Only supports SDR 4:2:0 8-bit (Qualcomm MF encoder limitation) - Fixed GOP size of 120 frames since MF doesn't support on-demand IDR The mediafoundation encoder is probed after quicksync and amdvce, serving as a fallback for ARM64 Windows devices.
CLANGARM64 cannot load @rollup/rollup-win32-arm64-msvc native version. Add npm overrides to force rollup to use the WASM version. Add a CI step to dump npm debug logs (always run) to aid troubleshooting install failures. Enable nvm_node for Debian 12 and 13 in scripts/linux_build.sh to allow Node installation via nvm on those distros. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Delete the `#warning` emitted for non-x64 architectures in src/platform/windows/audio.cpp. Update cmake/compile_definitions/windows.cmake to suppress specific GCC warnings when building for Windows ARM64. Add flags to SUNSHINE_COMPILE_OPTIONS for CMAKE_SYSTEM_PROCESSOR=ARM64 to silence warnings. - `-Wno-dll-attribute-on-redeclaration` for Boost - `-Wno-unknown-warning-option` for ViGEmClient - `-Wno-unused-variable` for Boost Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Replace variable-length arrays with std::vector in src/platform/windows/input.cpp and src/platform/windows/misc.cpp for safety and portability. Add <vector> includes, allocate wide-character buffer with std::vector<WCHAR> and pass wide.data() to MultiByteToWideChar, and replace WSABUF VLA with std::vector<WSABUF> and use .data() for msg.lpBuffers. These changes avoid non-standard VLAs and reduce stack-allocation risks. Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Drop the HMODULE dll = nullptr; declaration from src/nvenc/nvenc_d3d11_on_cuda.h. This removes an unused module handle field from the nvenc D3D11-on-CUDA wrapper to reduce unnecessary state. Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
|
NSIS installer does not support CLANGARM64. So only pack portable version currently. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Add windows arm64 documents. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
This PR adds an arm64 build for Windows.
Type of Change
.github/...)Checklist